package pl.edu.agh.pros.proxy;

import org.jivesoftware.smack.XMPPException;

import pl.edu.agh.pros.conf.ProxyConfiguration;

public interface IRosProxy {

	void start() throws XMPPException;

	void awaitStart();

	void stop();

	void restart() throws XMPPException;
	
	void reconnect();

	RosProxyHandler createProxyForTopicSubscriber(ProxyConfiguration proxyConfiguration);

	RosProxyHandler createProxyForTopicPublisher(ProxyConfiguration proxyConfiguration);

	RosProxyHandler createProxyForServiceClient(ProxyConfiguration proxyConfiguration);

	RosProxyHandler createProxyForServiceClient(ProxyConfiguration proxyConfiguration, String devId);

	RosProxyHandler createProxyForServiceServer(ProxyConfiguration proxyConfiguration);

}
